home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
obero
/
oberon_lib.lha
/
oberon-a
/
source1.lha
/
source
/
Amiga
/
Translator.mod
< prev
next >
Wrap
Text File
|
1994-08-08
|
2KB
|
110 lines
(**************************************************************************
$RCSfile: Translator.mod $
Description: Interface to translator.library
Created by: fjc (Frank Copeland)
$Revision: 3.2 $
$Author: fjc $
$Date: 1994/08/08 00:49:16 $
Includes Release 40.15
(C) Copyright 1985-1993 Commodore-Amiga, Inc.
All Rights Reserved
Oberon-A interface Copyright © 1994, Frank Copeland.
This file is part of the Oberon-A Interface.
See Oberon-A.doc for conditions of use and distribution.
***************************************************************************)
MODULE Translator;
(*
** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
** $V- OvflChk $Z- ZeroVars
*)
IMPORT Exec, SYS := SYSTEM;
(*
** $VER: translator.h 36.1 (13.12.90)
**
** Useful definitions for translator.library
*)
CONST
(* Translator error return codes *)
notUsed * = -1; (* This is an oft used system rc *)
noMem * = -2; (* Can't allocate memory *)
makeBad * = -4; (* Error in MakeLibrary call *)
(*-- Library Base variable --------------------------------------------*)
TYPE
TranslatorBasePtr = CPOINTER TO TranslatorBase;
TranslatorBase = RECORD (Exec.Library) END;
CONST
name * = "translator.library";
VAR
base* : TranslatorBasePtr;
(*-- Library Functions ------------------------------------------------*)
(*
** $VER: translator_protos.h 36.1 (7.11.90)
*)
LIBCALL (base : TranslatorBasePtr) Translate *
( inputString [8] : ARRAY OF CHAR;
inputLength [0] : LONGINT;
VAR outputBuffer [9] : ARRAY OF CHAR;
bufferSize [1] : LONGINT )
: LONGINT;
-30;
(*-- Library Base variable --------------------------------------------*)
(* $L- Address globals through A4 *)
(*-----------------------------------*)
PROCEDURE* CloseLib ();
BEGIN (* CloseLib *)
IF base # NIL THEN Exec.base.CloseLibrary (base) END;
END CloseLib;
(*-----------------------------------*)
PROCEDURE OpenLib * (mustOpen : BOOLEAN);
BEGIN (* OpenLib *)
IF base = NIL THEN
base :=
SYS.VAL
( TranslatorBasePtr,
Exec.base.OpenLibrary (name, Exec.libraryMinimum) );
IF base # NIL THEN SYS.SETCLEANUP (CloseLib)
ELSIF mustOpen THEN HALT (100)
END;
END;
END OpenLib;
BEGIN
base := NIL
END Translator.